﻿//输入格式:
//输入在一行给出1个正整数N（≤1000）和一个符号，中间以空格分隔。
//
//输出格式 :
//首先打印出由给定符号组成的最大的沙漏形状，最后在一行中输出剩下没用掉的符号数。
//
//输入样例 :
//   19 *
//输出样例 :
//	*****
//	 ***
//	  *
//	 ***
//	*****
//	2
#include<stdio.h>
int main() {
	int n;
	char ch;
	scanf_s("%d %c", &n, &ch);	//输入
	int sum = 1, i = 1;
	while (sum <= n) {			//判断最大的沙漏值；
		i += 2;
		sum += 2 * i;
	}
	sum -= 2 * i;				//多了要减回去；
	i -= 2;
	int k, j;
	for (k = 0; k < i; k++) {		//共循环i次，也就有i行
		if (k < i / 2) {			//判断打印上半部分，

			//循环几遍就是打印几个

			for (j = 0; j < k; j++)		   //将每行分为两个部分（空格和字符）
				printf(" ");			   //每行应该打印i个东西，而第一行全是字符，观察数量跟行数一样
			for (j = 0; j < i - 2 * k; j++)//所以第一行0个空格，i个字符，以此类推，第二行1个空格，第三行2个
 				printf("%c", ch);          //即第k+1行有k个空格，总的减剩的就是字符，也就是k+1行有i-2*k个字符；
		}
		else {
			for (j = 0; j < i - k - 1; j++)			  //同理，分成两个部分
				printf(" ");						 //空格的二倍和字符加一起应该是i；
			for (j = 0; j < 2 * (k + 1) - i; j++)	//用的数学通项公式，自己找规律，要学好数学qwq
				printf("%c", ch);
		}
		printf("\n");
	}
	printf("%d\n", n - sum);//输入减最大得剩下的
	return 0;//完美结束
 }